package com.iphanta.community.following.service;

import com.iphanta.community.following.entity.Dynamic;
import com.iphanta.community.following.traffic.*;
import com.iphanta.community.following.traffic.vo.Droplet;

import java.util.List;
import java.util.Map;

/**
 * @author 墨声 E-mail: zehong.hongframe.huang@gmail.com
 * create time: 2/15/22 6:10 PM
 */
public interface DynamicService {

    PublishDynamicResponse publishDynamic(PublishDynamicRequest request);

    HomepageDynamicResponse homepageDynamic(HomepageDynamicRequest request);

    DynamicFlowResponse dynamicFlow(DynamicFlowRequest request);

    DynamicFlowResponse squareFlow( DynamicFlowRequest request);

    TagDynamicResponse tagDynamicFlow(TagDynamicRequest request);

    PublishCommentResponse publishComment(PublishCommentRequest request);

    LikeDynamicResponse likeDynamic(LikeDynamicRequest request);

    DynamicCommentsResponse comments(DynamicCommentsRequest request);

    DynamicLikeResponse likes(DynamicLikeRequest request);

    RetractionResponse retract(RetractionRequest request);

    List<Droplet> dynamic2Flow(List<Dynamic> dynamics);

    List<Droplet> query(List<Long> dynamicId);

    Map<Long, String> dynamicResJson(List<Long> dynamicIds);

    Long sumLikedCount(String authorId);

}
